/**
 * Copyright 2014,Peak Tai 台俊峰(taijunfeng_it@sina.com).
 * 
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
 * use this file except in compliance with the License. You may obtain a copy of
 * the License at
 * 
 * 		http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 * License for the specific language governing permissions and limitations under
 * the License.
 */

package com.cenluan.vote;

import com.jfinal.core.Controller;
import com.jfinal.kit.StrKit;
import com.jfinal.validate.Validator;

/**
 * 发起投票，表单验证
 * 
 * @author peak
 * 
 */
public class VoteValidator extends Validator {

	@Override
	protected void validate(Controller c) {
		validateToken("msg", "无效的请求，请重新填写后提交");
		validateString("vote.title", 1, 100, "msg", "标题必须在1-100字之间");
		String type = c.getPara("vote.type");
		if(!Vote.TYPE_SINGLE.equals(type)&&!Vote.TYPE_MULTIPLE.equals(type)){
			addError("msg", "不正确的类型");
			return;
		}
		String[] options = c.getParaValues("option");
		if (options.length < 2 || options.length > 10) {
			addError("msg", "选项的数量只允许2-10个");
			return;
		}
		for (String option : options) {
			if (StrKit.isBlank(option)) {
				addError("msg", "选项内容不能为空");
				return;
			}
			if (option.length() > 20) {
				addError("msg", "选项内容不能超过20字");
				return;
			}
		}

	}

	@Override
	protected void handleError(Controller c) {
		c.createToken();
		c.render("add.html");

	}

}
